home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1997 September / Macworld (1997-09).dmg / Serious Software / Cherwell Scientific Demos / pro Fit / pro Fit 5.0 demo (ppc).sea / pro Fit 5.0 demo (ppc) / Examples / Plotting - vector fields / DipoleField program < prev    next >
MacBinary  |  1996-04-15  |  4.1 KB  |  [ftFC/NLft]

view JSON data     |     view as text     |     open on a Mac     |     open on a PC

This file was processed as: MacBinary (archive/macBinary).

You can browse this item here: DipoleField program

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
100% file MacBinary II, inited, Mon Apr 15 11:46:37 1996, modified Mon Apr 15 11:46:37 1996, creator 'NLft', type 'ftFC', 3131 bytes "DipoleField program" , at 0xcbb 815 bytes resource default (weak)
99% file data default
100% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[ftFC]
macFileCreator[NLft]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 13 44 69 70 6f 6c 65 | 46 69 65 6c 64 20 70 72 |..Dipole|Field pr|
|00000010| 6f 67 72 61 6d 00 00 00 | 00 00 00 00 00 00 00 00 |ogram...|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 66 74 46 43 4e 4c 66 | 74 01 00 00 00 00 00 00 |.ftFCNLf|t.......|
|00000050| 00 00 00 00 00 0c 3b 00 | 00 03 2f ad 98 1f dd ad |......;.|../.....|
|00000060| 98 1f dd 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 1a 3f 00 00 |........|.....?..|
|00000080| 7b 0d 54 68 69 73 20 70 | 72 6f 67 72 61 6d 20 63 |{.This p|rogram c|
|00000090| 61 6c 63 75 6c 61 74 65 | 73 20 74 68 65 20 65 6c |alculate|s the el|
|000000a0| 65 63 74 72 69 63 20 66 | 69 65 6c 64 20 6f 66 20 |ectric f|ield of |
|000000b0| 74 77 6f 20 6f 70 70 6f | 73 69 74 65 0d 63 68 61 |two oppo|site.cha|
|000000c0| 72 67 65 73 20 61 72 72 | 61 6e 67 65 64 20 61 74 |rges arr|anged at|
|000000d0| 20 70 6f 69 6e 74 73 20 | 2d 31 2f 30 20 61 6e 64 | points |-1/0 and|
|000000e0| 20 31 2f 30 2e 0d 54 6f | 20 72 75 6e 20 74 68 69 | 1/0..To| run thi|
|000000f0| 73 20 70 72 6f 67 72 61 | 6d 2c 20 66 69 72 73 74 |s progra|m, first|
|00000100| 20 61 64 64 20 69 74 20 | 74 6f 20 70 72 6f 20 46 | add it |to pro F|
|00000110| 69 74 20 62 79 20 63 68 | 6f 6f 73 69 6e 67 0d 22 |it by ch|oosing."|
|00000120| 41 64 64 20 74 6f 20 4d | 65 6e 75 22 20 66 72 6f |Add to M|enu" fro|
|00000130| 6d 20 74 68 65 20 22 4d | 69 73 63 22 20 6d 65 6e |m the "M|isc" men|
|00000140| 75 2e 20 54 68 65 6e 20 | 6f 70 65 6e 20 61 20 6e |u. Then |open a n|
|00000150| 65 77 0d 64 72 61 77 69 | 6e 67 20 77 69 6e 64 6f |ew.drawi|ng windo|
|00000160| 77 2e 20 54 68 65 6e 20 | 73 65 6c 65 63 74 20 74 |w. Then |select t|
|00000170| 68 65 20 70 72 6f 67 72 | 61 6d 20 28 22 44 69 70 |he progr|am ("Dip|
|00000180| 6f 6c 65 46 69 65 6c 64 | 22 29 0d 66 72 6f 6d 20 |oleField|").from |
|00000190| 74 68 65 20 22 52 75 6e | 20 50 72 6f 67 72 61 6d |the "Run| Program|
|000001a0| 22 20 73 75 62 6d 65 6e | 75 20 69 6e 20 74 68 65 |" submen|u in the|
|000001b0| 20 22 43 61 6c 63 22 20 | 6d 65 6e 75 2e 0d 0d 54 | "Calc" |menu...T|
|000001c0| 68 69 73 20 70 72 6f 67 | 72 61 6d 20 63 61 6e 20 |his prog|ram can |
|000001d0| 62 65 20 61 64 61 70 74 | 65 64 20 74 6f 20 70 6c |be adapt|ed to pl|
|000001e0| 6f 74 74 69 6e 67 20 6f | 74 68 65 72 20 76 65 63 |otting o|ther vec|
|000001f0| 74 6f 72 20 66 69 65 6c | 64 73 20 62 79 0d 6d 6f |tor fiel|ds by.mo|
|00000200| 64 69 66 79 69 6e 67 20 | 74 68 65 20 70 72 6f 63 |difying |the proc|
|00000210| 65 64 75 72 65 20 22 47 | 65 74 46 69 65 6c 64 22 |edure "G|etField"|
|00000220| 20 6f 6e 6c 79 2e 0d 7d | 0d 0d 70 72 6f 67 72 61 | only..}|..progra|
|00000230| 6d 20 44 69 70 6f 6c 65 | 46 69 65 6c 64 3b 0d 0d |m Dipole|Field;..|
|00000240| 63 6f 6e 73 74 20 0d 20 | 20 20 20 20 20 61 72 72 |const . | arr|
|00000250| 6f 77 41 6e 67 6c 65 20 | 3d 20 33 30 3b 20 7b 20 |owAngle |= 30; { |
|00000260| 61 72 72 6f 77 20 6f 70 | 65 6e 69 6e 67 20 61 6e |arrow op|ening an|
|00000270| 67 6c 65 20 7d 0d 20 20 | 20 20 20 20 61 72 72 6f |gle }. | arro|
|00000280| 77 4c 65 6e 20 3d 20 30 | 2e 30 32 3b 20 7b 20 61 |wLen = 0|.02; { a|
|00000290| 72 72 6f 77 20 6c 65 6e | 67 74 68 20 7d 0d 20 20 |rrow len|gth }. |
|000002a0| 20 20 20 20 72 61 6e 67 | 65 58 20 3d 20 32 3b 0d | rang|eX = 2;.|
|000002b0| 20 20 20 20 20 20 72 61 | 6e 67 65 59 20 3d 20 31 | ra|ngeY = 1|
|000002c0| 3b 0d 20 20 20 20 20 20 | 7a 6f 6f 6d 20 3d 20 30 |;. |zoom = 0|
|000002d0| 2e 30 32 3b 20 20 20 20 | 20 7b 20 7a 6f 6f 6d 20 |.02; | { zoom |
|000002e0| 66 61 63 74 6f 72 20 66 | 6f 72 20 64 72 61 77 69 |factor f|or drawi|
|000002f0| 6e 67 20 76 65 63 74 6f | 72 73 20 7d 0d 20 20 20 |ng vecto|rs }. |
|00000300| 20 20 20 6d 61 78 41 72 | 72 6f 77 20 3d 20 30 2e | maxAr|row = 0.|
|00000310| 31 30 3b 20 7b 20 74 68 | 65 20 6d 61 78 20 6c 65 |10; { th|e max le|
|00000320| 6e 67 74 68 20 6f 66 20 | 61 6e 20 61 72 72 6f 77 |ngth of |an arrow|
|00000330| 20 7d 0d 0d 76 61 72 20 | 20 45 78 2c 20 45 79 3a | }..var | Ex, Ey:|
|00000340| 20 72 65 61 6c 3b 20 20 | 20 20 20 7b 20 74 68 65 | real; | { the|
|00000350| 20 72 65 73 75 6c 74 73 | 20 6f 66 20 45 6c 65 63 | results| of Elec|
|00000360| 74 72 69 63 46 69 65 6c | 64 20 7d 0d 20 20 20 20 |tricFiel|d }. |
|00000370| 20 45 31 78 2c 20 45 31 | 79 3a 20 72 65 61 6c 3b | E1x, E1|y: real;|
|00000380| 0d 20 20 20 20 20 0d 20 | 20 20 20 20 78 2c 79 3a |. . | x,y:|
|00000390| 20 72 65 61 6c 3b 0d 20 | 20 20 20 20 56 65 63 74 | real;. | Vect|
|000003a0| 6f 72 58 2c 20 56 65 63 | 74 6f 72 59 3a 72 65 61 |orX, Vec|torY:rea|
|000003b0| 6c 3b 20 7b 73 65 74 20 | 62 79 20 74 68 65 20 66 |l; {set |by the f|
|000003c0| 75 6e 63 74 69 6f 6e 20 | 47 65 74 46 69 65 6c 64 |unction |GetField|
|000003d0| 20 7d 0d 20 20 20 20 20 | 73 69 6e 41 2c 20 63 6f | }. |sinA, co|
|000003e0| 73 41 3a 20 72 65 61 6c | 3b 20 7b 20 73 69 6e 65 |sA: real|; { sine|
|000003f0| 20 61 6e 64 20 63 6f 73 | 20 6f 66 20 61 72 72 6f | and cos| of arro|
|00000400| 77 20 61 6e 67 6c 65 20 | 74 69 6d 65 73 20 61 72 |w angle |times ar|
|00000410| 72 6f 77 20 6c 65 6e 67 | 74 68 20 7d 0d 0d 0d 0d |row leng|th }....|
|00000420| 70 72 6f 63 65 64 75 72 | 65 20 44 72 61 77 41 72 |procedur|e DrawAr|
|00000430| 72 6f 77 28 78 2c 79 2c | 20 76 78 2c 76 79 29 3b |row(x,y,| vx,vy);|
|00000440| 0d 20 20 7b 20 64 72 61 | 77 73 20 61 6e 20 61 72 |. { dra|ws an ar|
|00000450| 72 6f 77 20 61 74 20 70 | 6f 73 69 74 69 6f 6e 20 |row at p|osition |
|00000460| 78 2c 79 20 77 69 74 68 | 20 76 65 63 74 6f 72 20 |x,y with| vector |
|00000470| 76 78 2c 20 76 79 20 7d | 0d 20 20 76 61 72 20 74 |vx, vy }|. var t|
|00000480| 69 70 58 2c 20 74 69 70 | 59 3a 20 72 65 61 6c 3b |ipX, tip|Y: real;|
|00000490| 0d 20 20 20 20 20 20 61 | 78 2c 20 61 79 2c 20 72 |. a|x, ay, r|
|000004a0| 3a 20 72 65 61 6c 3b 0d | 62 65 67 69 6e 0d 20 20 |: real;.|begin. |
|000004b0| 76 78 20 3a 3d 20 76 78 | 2a 7a 6f 6f 6d 3b 20 76 |vx := vx|*zoom; v|
|000004c0| 79 20 3a 3d 20 76 79 2a | 7a 6f 6f 6d 3b 0d 20 20 |y := vy*|zoom;. |
|000004d0| 72 20 3a 3d 20 73 71 72 | 74 28 73 71 72 28 76 78 |r := sqr|t(sqr(vx|
|000004e0| 29 20 2b 20 73 71 72 28 | 76 79 29 29 3b 0d 20 20 |) + sqr(|vy));. |
|000004f0| 69 66 20 28 72 20 3c 20 | 6d 61 78 41 72 72 6f 77 |if (r < |maxArrow|
|00000500| 29 20 61 6e 64 20 28 72 | 20 3e 20 31 65 2d 33 30 |) and (r| > 1e-30|
|00000510| 29 20 74 68 65 6e 0d 20 | 20 62 65 67 69 6e 0d 20 |) then. | begin. |
|00000520| 20 20 74 69 70 58 20 3a | 3d 20 78 20 2b 20 76 78 | tipX :|= x + vx|
|00000530| 2f 32 3b 0d 20 20 20 74 | 69 70 59 20 3a 3d 20 79 |/2;. t|ipY := y|
|00000540| 20 2b 20 76 79 2f 32 3b | 0d 20 20 20 4d 6f 76 65 | + vy/2;|. Move|
|00000550| 54 6f 28 78 2d 76 78 2f | 32 2c 20 79 2d 76 79 2f |To(x-vx/|2, y-vy/|
|00000560| 32 29 3b 0d 20 20 20 4c | 69 6e 65 54 6f 28 74 69 |2);. L|ineTo(ti|
|00000570| 70 58 2c 20 74 69 70 59 | 29 3b 0d 20 20 20 69 66 |pX, tipY|);. if|
|00000580| 20 72 20 3e 3d 20 61 72 | 72 6f 77 4c 65 6e 20 74 | r >= ar|rowLen t|
|00000590| 68 65 6e 20 20 20 7b 20 | 73 68 6f 77 20 61 72 72 |hen { |show arr|
|000005a0| 6f 77 20 6f 6e 6c 79 20 | 69 66 20 73 68 61 66 74 |ow only |if shaft|
|000005b0| 20 6c 6f 6e 67 20 65 6e | 6f 75 67 68 20 7d 0d 20 | long en|ough }. |
|000005c0| 20 20 62 65 67 69 6e 0d | 20 20 20 20 76 78 20 3a | begin.| vx :|
|000005d0| 3d 20 76 78 2f 72 3b 20 | 76 79 20 3a 3d 20 76 79 |= vx/r; |vy := vy|
|000005e0| 2f 72 3b 0d 20 20 20 20 | 61 78 20 3a 3d 20 63 6f |/r;. |ax := co|
|000005f0| 73 41 2a 76 78 20 2d 20 | 73 69 6e 41 2a 76 79 3b |sA*vx - |sinA*vy;|
|00000600| 0d 20 20 20 20 61 79 20 | 3a 3d 20 73 69 6e 41 2a |. ay |:= sinA*|
|00000610| 76 78 20 2b 20 63 6f 73 | 41 2a 76 79 3b 0d 20 20 |vx + cos|A*vy;. |
|00000620| 20 20 4d 6f 76 65 54 6f | 28 74 69 70 58 2d 61 78 | MoveTo|(tipX-ax|
|00000630| 2c 20 74 69 70 59 2d 61 | 79 29 3b 0d 20 20 20 20 |, tipY-a|y);. |
|00000640| 4c 69 6e 65 54 6f 28 74 | 69 70 58 2c 20 74 69 70 |LineTo(t|ipX, tip|
|00000650| 59 29 3b 0d 20 20 20 20 | 61 78 20 3a 3d 20 63 6f |Y);. |ax := co|
|00000660| 73 41 2a 76 78 20 2b 20 | 73 69 6e 41 2a 76 79 3b |sA*vx + |sinA*vy;|
|00000670| 0d 20 20 20 20 61 79 20 | 3a 3d 20 2d 73 69 6e 41 |. ay |:= -sinA|
|00000680| 2a 76 78 20 2b 20 63 6f | 73 41 2a 76 79 3b 0d 20 |*vx + co|sA*vy;. |
|00000690| 20 20 20 4c 69 6e 65 54 | 6f 28 74 69 70 58 2d 61 | LineT|o(tipX-a|
|000006a0| 78 2c 20 74 69 70 59 2d | 61 79 29 3b 0d 20 20 20 |x, tipY-|ay);. |
|000006b0| 65 6e 64 3b 0d 20 20 65 | 6e 64 3b 0d 65 6e 64 3b |end;. e|nd;.end;|
|000006c0| 20 7b 20 44 72 61 77 41 | 72 72 6f 77 20 7d 0d 0d | { DrawA|rrow }..|
|000006d0| 0d 70 72 6f 63 65 64 75 | 72 65 20 45 6c 65 63 74 |.procedu|re Elect|
|000006e0| 72 69 63 46 69 65 6c 64 | 28 78 2c 79 2c 20 78 78 |ricField|(x,y, xx|
|000006f0| 30 2c 20 79 79 30 2c 20 | 63 29 3b 0d 20 20 7b 20 |0, yy0, |c);. { |
|00000700| 72 65 74 75 72 6e 73 20 | 74 68 65 20 66 69 65 6c |returns |the fiel|
|00000710| 64 20 6f 66 20 61 20 73 | 69 6e 67 6c 65 20 63 68 |d of a s|ingle ch|
|00000720| 61 72 67 65 20 7d 0d 20 | 76 61 72 20 72 33 3b 0d |arge }. |var r3;.|
|00000730| 62 65 67 69 6e 0d 20 78 | 20 3a 3d 20 78 2d 78 78 |begin. x| := x-xx|
|00000740| 30 3b 0d 20 79 20 3a 3d | 20 79 2d 79 79 30 3b 0d |0;. y :=| y-yy0;.|
|00000750| 20 72 33 20 3a 3d 20 28 | 73 71 72 28 78 29 20 2b | r3 := (|sqr(x) +|
|00000760| 20 73 71 72 28 79 29 29 | 20 5e 31 2e 35 3b 0d 20 | sqr(y))| ^1.5;. |
|00000770| 69 66 20 28 72 33 20 3c | 20 31 65 2d 33 30 29 20 |if (r3 <| 1e-30) |
|00000780| 74 68 65 6e 0d 20 62 65 | 67 69 6e 0d 20 20 20 45 |then. be|gin. E|
|00000790| 78 20 3a 3d 20 30 3b 20 | 45 79 20 3a 3d 20 30 3b |x := 0; |Ey := 0;|
|000007a0| 0d 20 65 6e 64 0d 20 65 | 6c 73 65 0d 20 62 65 67 |. end. e|lse. beg|
|000007b0| 69 6e 0d 20 20 20 45 78 | 20 3a 3d 20 63 20 2a 20 |in. Ex| := c * |
|000007c0| 78 2f 72 33 3b 20 45 79 | 20 3a 3d 20 63 20 2a 20 |x/r3; Ey| := c * |
|000007d0| 79 2f 72 33 3b 0d 20 65 | 6e 64 3b 0d 65 6e 64 3b |y/r3;. e|nd;.end;|
|000007e0| 0d 0d 7b 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |..{*****|********|
|000007f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000800| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000810| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000820| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 7d 0d 7b 20 |********|****}.{ |
|00000830| 74 68 69 73 20 66 75 6e | 63 74 69 6f 6e 20 63 61 |this fun|ction ca|
|00000840| 6c 63 75 6c 61 74 65 73 | 20 74 68 65 20 76 65 63 |lculates| the vec|
|00000850| 74 6f 72 20 66 69 65 6c | 64 20 74 6f 20 62 65 20 |tor fiel|d to be |
|00000860| 70 6c 6f 74 74 65 64 2e | 20 7d 0d 7b 20 73 75 62 |plotted.| }.{ sub|
|00000870| 73 74 69 74 75 74 65 20 | 69 74 20 77 69 74 68 20 |stitute |it with |
|00000880| 61 20 66 75 6e 63 74 69 | 6f 6e 20 6f 66 20 79 6f |a functi|on of yo|
|00000890| 75 72 73 20 69 66 20 79 | 6f 75 20 77 61 6e 74 20 |urs if y|ou want |
|000008a0| 74 6f 20 70 6c 6f 74 20 | 7d 0d 7b 20 6f 74 68 65 |to plot |}.{ othe|
|000008b0| 72 20 76 65 63 74 6f 72 | 20 72 69 65 6c 64 73 2e |r vector| rields.|
|000008c0| 20 50 72 65 73 65 6e 74 | 6c 79 20 69 74 20 63 61 | Present|ly it ca|
|000008d0| 6c 6c 73 20 74 68 65 20 | 70 72 6f 63 65 64 75 72 |lls the |procedur|
|000008e0| 65 20 09 7d 0d 7b 20 45 | 6c 65 63 74 72 69 63 46 |e .}.{ E|lectricF|
|000008f0| 69 65 6c 64 20 74 6f 20 | 63 61 6c 63 75 6c 61 74 |ield to |calculat|
|00000900| 65 20 74 68 65 20 66 69 | 65 6c 64 20 6f 66 20 61 |e the fi|eld of a|
|00000910| 20 64 69 70 6f 6c 65 2e | 09 09 7d 0d 0d 70 72 6f | dipole.|..}..pro|
|00000920| 63 65 64 75 72 65 20 47 | 65 74 46 69 65 6c 64 28 |cedure G|etField(|
|00000930| 78 2c 79 3a 72 65 61 6c | 29 3b 0d 62 65 67 69 6e |x,y:real|);.begin|
|00000940| 0d 20 20 20 20 20 20 45 | 6c 65 63 74 72 69 63 46 |. E|lectricF|
|00000950| 69 65 6c 64 28 78 2c 79 | 2c 20 31 2c 20 30 2c 20 |ield(x,y|, 1, 0, |
|00000960| 31 29 3b 0d 20 20 20 20 | 20 20 45 31 78 20 3a 3d |1);. | E1x :=|
|00000970| 20 45 78 3b 20 45 31 79 | 20 3a 3d 20 45 79 3b 0d | Ex; E1y| := Ey;.|
|00000980| 20 20 20 20 20 20 45 6c | 65 63 74 72 69 63 46 69 | El|ectricFi|
|00000990| 65 6c 64 28 78 2c 79 2c | 20 2d 31 2c 20 30 2c 20 |eld(x,y,| -1, 0, |
|000009a0| 2d 31 29 3b 0d 20 20 20 | 20 20 20 0d 09 09 09 09 |-1);. | .....|
|000009b0| 09 09 56 65 63 74 6f 72 | 58 3a 3d 20 45 78 2b 45 |..Vector|X:= Ex+E|
|000009c0| 31 78 3b 09 0d 09 09 09 | 09 09 09 56 65 63 74 6f |1x;.....|...Vecto|
|000009d0| 72 59 3a 3d 20 45 79 2b | 45 31 79 0d 65 6e 64 3b |rY:= Ey+|E1y.end;|
|000009e0| 0d 7b 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |.{******|********|
|000009f0| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a00| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a10| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 2a 2a 2a 2a 2a |********|********|
|00000a20| 2a 2a 2a 2a 2a 2a 2a 2a | 2a 2a 2a 7d 0d 0d 0d 62 |********|***}...b|
|00000a30| 65 67 69 6e 0d 20 20 73 | 69 6e 41 20 3a 3d 20 73 |egin. s|inA := s|
|00000a40| 69 6e 28 61 72 72 6f 77 | 41 6e 67 6c 65 2a b9 2f |in(arrow|Angle*./|
|00000a50| 31 38 30 29 20 2a 20 61 | 72 72 6f 77 4c 65 6e 3b |180) * a|rrowLen;|
|00000a60| 0d 20 20 63 6f 73 41 20 | 3a 3d 20 63 6f 73 28 61 |. cosA |:= cos(a|
|00000a70| 72 72 6f 77 41 6e 67 6c | 65 2a b9 2f 31 38 30 29 |rrowAngl|e*./180)|
|00000a80| 20 2a 20 61 72 72 6f 77 | 4c 65 6e 3b 0d 20 20 53 | * arrow|Len;. S|
|00000a90| 65 74 4e 65 77 47 72 61 | 70 68 52 65 63 74 28 33 |etNewGra|phRect(3|
|00000aa0| 30 2c 20 33 30 2c 20 34 | 33 30 2c 20 32 33 30 29 |0, 30, 4|30, 230)|
|00000ab0| 3b 0d 20 20 43 72 65 61 | 74 65 4e 65 77 47 72 61 |;. Crea|teNewGra|
|00000ac0| 66 28 2d 72 61 6e 67 65 | 58 2c 72 61 6e 67 65 58 |f(-range|X,rangeX|
|00000ad0| 2c 2d 72 61 6e 67 65 59 | 2c 72 61 6e 67 65 59 2c |,-rangeY|,rangeY,|
|00000ae0| 30 2c 30 29 3b 0d 20 20 | 53 65 74 4c 69 6e 65 53 |0,0);. |SetLineS|
|00000af0| 74 79 6c 65 28 30 2e 35 | 2c 20 31 29 3b 0d 20 20 |tyle(0.5|, 1);. |
|00000b00| 4f 70 65 6e 43 75 72 76 | 65 28 27 65 6c 65 63 74 |OpenCurv|e('elect|
|00000b10| 72 69 63 20 66 69 65 6c | 64 27 29 3b 0d 20 20 78 |ric fiel|d');. x|
|00000b20| 20 3a 3d 20 2d 72 61 6e | 67 65 58 3b 0d 20 20 77 | := -ran|geX;. w|
|00000b30| 68 69 6c 65 20 78 20 3c | 3d 20 72 61 6e 67 65 58 |hile x <|= rangeX|
|00000b40| 20 64 6f 0d 20 20 62 65 | 67 69 6e 0d 20 20 20 20 | do. be|gin. |
|00000b50| 79 20 3a 3d 20 2d 72 61 | 6e 67 65 59 3b 0d 20 20 |y := -ra|ngeY;. |
|00000b60| 20 20 77 68 69 6c 65 20 | 79 20 3c 3d 20 72 61 6e | while |y <= ran|
|00000b70| 67 65 59 20 64 6f 0d 20 | 20 20 20 62 65 67 69 6e |geY do. | begin|
|00000b80| 0d 20 20 20 20 20 20 47 | 65 74 46 69 65 6c 64 28 |. G|etField(|
|00000b90| 78 2c 79 29 3b 20 7b 54 | 68 69 73 20 66 75 6e 63 |x,y); {T|his func|
|00000ba0| 74 69 6f 6e 20 63 61 6c | 63 75 6c 61 74 65 73 20 |tion cal|culates |
|00000bb0| 74 68 65 20 76 65 63 74 | 6f 72 20 66 72 6f 6d 20 |the vect|or from |
|00000bc0| 74 68 65 7d 0d 20 20 20 | 20 20 20 20 20 20 20 20 |the}. | |
|00000bd0| 20 20 20 20 20 20 20 20 | 20 20 7b 63 6f 6f 72 64 | | {coord|
|00000be0| 69 6e 61 74 65 20 78 2c | 79 20 61 6e 64 20 73 65 |inate x,|y and se|
|00000bf0| 74 73 20 56 65 63 74 6f | 72 58 2c 56 65 63 74 6f |ts Vecto|rX,Vecto|
|00000c00| 72 59 7d 0d 20 20 20 20 | 20 20 44 72 61 77 41 72 |rY}. | DrawAr|
|00000c10| 72 6f 77 28 78 2c 79 2c | 20 56 65 63 74 6f 72 58 |row(x,y,| VectorX|
|00000c20| 2c 56 65 63 74 6f 72 59 | 29 3b 0d 20 20 20 20 20 |,VectorY|);. |
|00000c30| 20 79 20 3a 3d 20 79 2b | 72 61 6e 67 65 59 2f 31 | y := y+|rangeY/1|
|00000c40| 30 3b 0d 20 20 20 20 65 | 6e 64 3b 20 7b 77 68 69 |0;. e|nd; {whi|
|00000c50| 6c 65 7d 0d 20 20 20 20 | 78 20 3a 3d 20 78 2b 72 |le}. |x := x+r|
|00000c60| 61 6e 67 65 59 2f 31 30 | 3b 0d 20 20 65 6e 64 3b |angeY/10|;. end;|
|00000c70| 20 7b 77 68 69 6c 65 7d | 0d 20 20 43 6c 6f 73 65 | {while}|. Close|
|00000c80| 43 75 72 76 65 3b 0d 20 | 20 53 65 74 4c 69 6e 65 |Curve;. | SetLine|
|00000c90| 53 74 79 6c 65 28 31 2c | 20 31 29 3b 20 7b 72 65 |Style(1,| 1); {re|
|00000ca0| 73 65 74 20 6c 69 6e 65 | 20 73 74 79 6c 65 7d 0d |set line| style}.|
|00000cb0| 65 6e 64 3b 0d 0d 20 20 | 0d 20 20 00 00 00 00 00 |end;.. |. .....|
|00000cc0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000cd0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000ce0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000cf0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000d00| 00 00 01 00 00 00 02 b9 | 00 00 01 b9 00 00 00 76 |........|.......v|
|00000d10| 61 6c 63 75 6c 61 74 65 | 73 20 74 68 65 20 65 6c |alculate|s the el|
|00000d20| 65 63 74 72 69 63 20 66 | 69 65 6c 64 20 6f 66 20 |ectric f|ield of |
|00000d30| 13 44 69 70 6f 6c 65 46 | 69 65 6c 64 20 70 72 6f |.DipoleF|ield pro|
|00000d40| 67 72 61 6d 02 00 00 00 | 66 74 46 43 4e 4c 66 74 |gram....|ftFCNLft|
|00000d50| 00 00 66 74 46 43 4e 4c | 66 74 01 00 00 34 00 00 |..ftFCNL|ft...4..|
|00000d60| 00 00 00 00 00 00 00 00 | 00 00 80 00 00 00 00 00 |........|........|
|00000d70| 00 00 aa 69 64 d2 00 00 | 0c 3b 00 00 03 2f 73 74 |...id...|.;.../st|
|00000d80| 20 61 64 64 20 69 74 20 | 74 6f 20 70 72 6f 20 46 | add it |to pro F|
|00000d90| 69 74 20 62 79 20 63 68 | 6f 6f 73 69 6e 67 0d 22 |it by ch|oosing."|
|00000da0| 41 64 64 20 74 6f 20 4d | 65 6e 75 22 20 66 72 6f |Add to M|enu" fro|
|00000db0| 6d 20 74 68 65 20 22 4d | 69 73 63 22 20 6d 65 6e |m the "M|isc" men|
|00000dc0| 75 2e 20 54 68 65 6e 20 | 6f 70 65 6e 20 61 20 6e |u. Then |open a n|
|00000dd0| 65 77 0d 64 72 61 77 69 | 6e 67 20 77 69 6e 64 6f |ew.drawi|ng windo|
|00000de0| 77 2e 20 54 68 65 6e 20 | 73 65 6c 65 63 74 20 74 |w. Then |select t|
|00000df0| 68 65 20 70 72 6f 67 72 | 61 6d 20 28 22 44 69 70 |he progr|am ("Dip|
|00000e00| 00 00 00 08 00 2a 00 21 | 02 dd 02 11 00 00 01 06 |.....*.!|........|
|00000e10| 00 04 00 09 00 00 06 4d | 6f 6e 61 63 6f 80 02 63 |.......M|onaco..c|
|00000e20| 04 00 00 00 2d e8 02 87 | f7 70 22 00 02 28 40 a1 |....-...|.p"..(@.|
|00000e30| 27 a0 00 56 96 c0 00 81 | 00 00 00 01 d9 94 00 0b |'..V....|........|
|00000e40| 00 06 00 0b 00 06 00 00 | 00 81 02 62 75 40 00 00 |........|...bu@..|
|00000e50| 00 00 02 62 6b 04 00 00 | 00 81 02 62 75 40 00 00 |...bk...|...bu@..|
|00000e60| 00 00 ff ff ff ff 02 87 | f8 c0 00 0c f3 54 03 22 |........|.....T."|
|00000e70| 67 78 00 00 00 02 00 2a | 00 11 02 62 0d 80 02 87 |gx.....*|...b....|
|00000e80| f7 a8 02 87 f8 00 02 87 | f8 a8 02 62 65 89 02 62 |........|...be..b|
|00000e90| 84 78 00 00 00 01 00 04 | 6a 30 00 0c f4 a0 00 04 |.x......|j0......|
|00000ea0| 6a 30 00 00 00 00 02 87 | f8 20 00 19 5a 70 00 14 |j0......|. ..Zp..|
|00000eb0| d1 98 00 19 5a 90 02 87 | f8 20 00 18 bc 8c 00 14 |....Z...|. ......|
|00000ec0| cb 14 00 45 8c 50 02 87 | f8 20 00 18 bc 8c 00 1a |...E.P..|. ......|
|00000ed0| 8f 0c 00 1a 8f 00 02 87 | f8 50 00 18 bc 8c 00 1a |........|.P......|
|00000ee0| 0e 8c 00 00 00 02 02 87 | f8 30 00 1a 8f 24 00 1a |........|.0...$..|
|00000ef0| f2 94 00 0c f4 a0 00 01 | ee 50 00 01 2f a4 00 00 |........|.P../...|
|00000f00| 00 00 00 0c f4 d0 02 62 | 88 a2 00 19 5a 70 07 80 |.......b|....Zp..|
|00000f10| 03 80 00 00 00 00 00 00 | 00 10 00 00 00 00 00 00 |........|........|
|00000f20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 04 00 00 |........|........|
|00000f30| 00 01 00 00 00 78 00 03 | 00 00 00 48 00 48 00 00 |.....x..|...H.H..|
|00000f40| 00 00 02 da 02 28 ff e1 | ff e2 02 f9 02 46 03 47 |.....(..|.....F.G|
|00000f50| 05 28 03 fc 00 02 00 00 | 00 48 00 48 00 00 00 00 |.(......|.H.H....|
|00000f60| 02 da 02 28 00 01 00 00 | 00 64 00 00 00 01 00 01 |...(....|.d......|
|00000f70| 01 01 00 00 00 01 27 0f | 00 01 00 01 00 00 00 00 |......'.|........|
|00000f80| 00 00 00 00 00 00 00 00 | 68 08 00 19 01 90 00 00 |........|h.......|
|00000f90| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 01 00 00 |........|........|
|00000fa0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000fb0| 00 07 06 70 72 6f 46 69 | 74 00 00 01 00 00 00 02 |...proFi|t.......|
|00000fc0| b9 00 00 01 b9 00 00 00 | 76 02 62 9b fc 27 4c 00 |........|v.b..'L.|
|00000fd0| 00 00 1c 00 76 00 01 66 | 49 4e 46 00 04 00 12 53 |....v..f|INF....S|
|00000fe0| 54 52 20 00 00 00 4e 00 | 81 ff ff 00 00 00 00 02 |TR ...N.|........|
|00000ff0| 62 95 f4 00 82 ff ff 00 | 00 00 0c 02 62 93 c0 00 |b.......|....b...|
|00001000| 83 ff ff 00 00 01 16 02 | 62 94 04 00 85 ff ff 00 |........|b.......|
|00001010| 00 01 2a 02 62 90 f0 00 | 84 ff ff 00 00 01 32 02 |..*.b...|......2.|
|00001020| 62 92 54 bf f4 ff ff 00 | 00 01 ae 02 62 91 bc 00 |b.T.....|....b...|
|00001030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001040| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001050| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001060| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001070| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+